Point cloud clustering (DBSCAN) 
Density-based clustering algorithm (DBSCAN - Density-based spatial clustering of applications with noise). Unsupervised learning algorithm that clusters a point cloud based on a threshold for neighborhood and a minimum number of neighbors. The algorithm returns a 3D point vector layer with cluster centers and a cluster ID for each point.
This algorithm is suited for clusters that are dense enough, and well separated by low-density regions. No a-priori specification of the number of clusters is necessary and the algorithm can identify outliers and noise and finds arbitrarily sized and shaped clusters.
If the density within your point cloud layer is varying, the results of DBSCAN can be improved by using the algorithm 'create temporary point cloud' first: use the parameter 'Downsampling' to reduce the number of points so that high-density areas are adapted to match low-density areas. Then apply the DBSCAN algorithm to the new point cloud layer with adjusted values for the epsilon and minimum number of points parameters to produce meaningful clusters.
This algorithm replaces the algorithm ‘cluster analysis of point cloud’.
Supported Domains
Execute; Image Object Level; Current Image Object; Neighbor Image Object; Super Object; Sub Objects; Linked Objects;
Algorithm Parameters
Input
Point cloud
Select the point cloud layer for analysis.
Region
Option to filter point cloud by a defined region of interest.
Class filter
Option to select input classes for analysis.
Point condition
Option to select threshold condition(s) to filter points.
Settings
Experiment with different values for Epsilon and Minimum points to achieve convincing results for your data and question formulation. Both parameters are coupled, e.g. if you double Epsilon, you need to increase your Minimum points value.
Minimum points
The minimum number of points clustered together for a region to be considered dense within radius defined in parameter ‘Epsilon’. Default value: 100. Higher values lead to larger clusters, whereas lower values reduce the resulting cluster size. The value has to be a positive integer value (reasonable value ≥ 3).
Epsilon (ε)
Distance to determine the points in the neighborhood of any point. If the ‘Epsilon’ radius of a point contains at least ‘Minimum point’ neighbors, the point is identified as a core point. Default value: 0.25 [m]. Note - for too small values of ε a large part of the data is not clustered; whereas for too high values of ε, clusters are merged and the majority of points will be in the same cluster. Rule of thumb - small values are preferable with only a small fraction of points being within this distance of each other.
Scaling
Scaling changes the range of the point coordinates still maintaining their distance at a different scale. It allows expansion or squeezing along the specified axis to produce more compact clusters. This leads to a better detection of resulting clusters. (Range: positive values > 0). Example: Squeeze signs and poles along the Z axis by a factor of 0.5 for improved cluster detection.
Scale X
Parameter to scale point coordinates in X direction maintaining distance at a different scale. (squeeze/expand effect). (Default value: 1 = no scaling, Range: positive values > 0)
Scale Y
Parameter to scale point coordinates in Y direction maintaining distance at a different scale. (squeeze/expand effect). (Default value: 1 = no scaling, Range: positive values > 0)
Scale Z
Parameter to scale point coordinates in Z direction maintaining distance at a different scale. (squeeze/expand effect). (Default value: 1 = no scaling, Range: positive values > 0)
Output
Store cluster ID
Select Yes to store the cluster ID for each point as Point features (point cloud) > Point fields > Temporary user data property. Cluster ID value 0 corresponds to an outlier or noise point. (Default setting Yes).
Cluster center points
3D point vector layer with centers of gravity for each cluster. (See also parameter ‘Vertical center placement’) Default name: cluster_centers.
Define the class with which the points in one cluster are labeled with. Class assignment also possible From Feature or From Array Item.
Vertical center placement
Option to select vertical center point position: at the top, bottom, or center of gravity of the cluster. Example: This parameter is helpful for pole extraction to obtain the top or bottom point of the resulting cluster.
Progress variable
Option to introduce a variable that provides progress output, updated from current to max range.
Progress range max
Only available for defined progress variable. Maximum value for progress variable range. Updates from current to this specified value (Default 100).